/*
 * @FileName: bsp_gpio.c
 * @Author: GreyQiu qiushaogui@aikosolar.com
 * @Date: 2023-07-12 16:05:59
 * @LastEditors: GreyQiu qiushaogui@aikosolar.com
 * @LastEditTime: 2023-09-23 11:31:56
 * @Description: 
 * 
 * Copyright (c) 2023, All Rights Reserved. 
 */

#include "bsp_gpio.h"

/**
 * @description: 单板所有IO口初始化为相应功能
 * @return 无
 */
void bsp_gpio_init(void) {
    // 绿灯
    GPIO_setPinConfig(GPIO_42_GPIO42);
    GPIO_setDirectionMode(42, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(42, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(42, GPIO_QUAL_SYNC);

    // 红灯
    GPIO_setPinConfig(GPIO_39_GPIO39);
    GPIO_setDirectionMode(39, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(39, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(39, GPIO_QUAL_SYNC);

    // 蓝灯
    GPIO_setPinConfig(GPIO_8_GPIO8);
    GPIO_setDirectionMode(8, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(8, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(8, GPIO_QUAL_SYNC);

    bsp_gpio_set(LEG_GREEN_PIN);
    bsp_gpio_set(LEG_RED_PIN);
    bsp_gpio_set(LEG_BLUE_PIN);
}

/**
 * @description: IO口置高
 * @param port
 * @param pin
 * @return 无
 */
void bsp_gpio_set(uint32_t pin)
{
    GPIO_writePin(pin, 1);
}

/**
 * @description: IO口置低
 * @param port
 * @param pin
 * @return 无
 */
void bsp_gpio_reset(uint32_t pin)
{
    GPIO_writePin(pin, 0);
}

/**
 * @description: IO口翻转
 * @param port
 * @param pin
 * @return 无
 */
void bsp_gpio_toggle(uint32_t pin)
{
    GPIO_togglePin(pin);
}
